`1              
`23-nsij`1me1
braille intgral


    baccalaurat gnral

   preuve d'enseignement
        de spcialit

        session `2023

   numrique et sciences
        informatiques

      preuve du lundi
        `20 mars `2023

     dure de l'preuve:
        `3 heures `30


  l'usage de la calculatrice
n'est pas autoris.



a`1                         `2
  ds que ce sujet vous est
remis, assurez-vous qu'il est
complet.
  ce sujet comporte `10 pages
numrotes de `1/10  `10/10
dans la version originale.
dans la version en braille
intgral, le sujet comporte
`31 pages numrotes de `1 
`31 `!2 planches tactiles en
fin de volume.

  :le candidat traite les
`3 exercices proposs












`2       exercice `1       `3

        exercice `1
         (`3 points)


  :cet exercice porte sur la
notion de base de donnes re-
lationnelle et le langage
sql.

  on pourra utiliser les
mots-cls sql suivants:
:and, from, insert, into,
join, on, select, set, update,
values, where.

  un grand magasin de meubles
propose  ses clients un large
choix de meubles. les
informations correspondantes
sont ranges dans une base de
donnes compose de trois re-
lations.



a`2      exercice `1       `4
  voici le schma de deux de
ces relations:
  9o clients (id, nom,
    prenom, adresse, ville)
  9o commandes (id,
    0idclient, 0idmeuble,
    quantite, date)
  
  dans ce schma:
  9o la cl primaire de chaque
    relation est dfinie par
    les attributs souligns;
  9o les attributs prcds de
    0 sont les cls trang-
    res.

  la troisime relation est
appele meubles et concerne
les meubles du magasin.
  le tableau de la figure `1
ci-dessous en prsente un
extrait:




b`2      exercice `1       `5
figure `1 -- extrait de la
relation meubles
      `;tableau transcrit par
      renforcements
      progressifs'

id
  intitule; prix; stock;
    description
`62 
  'skap'; `69,99; `2;
    'armoire blanche `3
    portes'
`63 
  'skap'; `69,99; `3;
    'armoire noire `3 portes'
`74 
  'stol'; `39,99; `10;
    'chaise en bois avec tis-
    su bleu'
`98 
  'hylla'; `99,99; `0;
    'bibliothque `5 tages
    blanche'


c`2      exercice `1       `6
  `1. dans cette question, on
s'intresse au modle rela-
tionnel.

  a. donner la caract-
ristique qu'un attribut doit
avoir pour 2tre choisi comme
cl primaire.

  b. expliquer le r4le des
deux cls trangres de la re-
lation commandes.

  c. donner le schma rela-
tionnel de la relation
meubles en prcisant la cl
primaire et les ventuelles
cls trangres.

  `2. en vous basant unique-
ment sur les donnes du
tableau de la figure `1, don-
ner le rsultat de la requ2te
suivante:


d`2      exercice `1       `7
  select id, stock,
    description
  from meubles
  where intitule `" 'skap';

  `3. donner la requ2te sql
permettant d'afficher les noms
et prnoms des clients habi-
tant  paris.

----------------------------`3

  `4. le magasin vient de re-
cevoir des meubles dont
l'intitul est 'hylla' et dont
l'attribut id dans la relation
meubles vaut `98. le stock
de ces meubles est alors de
`50.
  recopier et complter la
requ2te sql page suivante
qui permet de mettre  jour la
base de donnes.



a`3      exercice `1       `8
  update ...
  set ...
  where ...

  `5. le magasin vient d'a-
jouter  son catalogue un nou-
veau meuble dont les caract-
ristiques sont les suivantes:

      `;tableau transcrit par
      renforcements
      progressifs'

id:
  intitule; prix; stock
    description
`65 
  'matta'; `95,99; stock: `25
    'tapis vert  pois rou-
    ges'

  donner la requ2te sql qui
permet d'ajouter cet article 
la relation meubles.


b`3      exercice `1       `9
  `6. donner la requ2te sql
permettant de rcuprer le nom
et le prnom des diffrents
clients qui ont pass une com-
mande le `30 avril `2021.
  on prcise que, dans la re-
lation commandes, les dates
sont des cha3nes de caract-
res, par exemple
'`21/08/2002'.
















`4       exercice `2      `10

        exercice `2
         (`3 points)

  :cet exercice porte sur
les rseaux.

  le rseau d'une entreprise
dispose de quatre sites
(sitea, siteb, sitec et
sited) et de cinq routeurs
(:r`1, r`2, r`3, r`4 et
r`5). la figure `1 en donne
une reprsentation.

figure `1 -- reprsentation
du rseau de l'entreprise
      `;voir planche tactile
      no`1'

  `1. justifier brivement
que ce rseau sera encore
fonctionnel m2me si l'une des
liaisons (liaison`1,
liaison`2, ..., liaison`6)
est coupe.
a`4      exercice `2      `11
  `2. dans un premier temps,
les tables de routage des rou-
teurs sont configures manuel-
lement (voir figure `2).

figure `2 -- tables de rou-
tage des routeurs :r`1, r`2,
r`3, r`4 et r`5

      `;les tables sont
      transcrites en colonne-
      s'

routeur r`1

  destination; suivant
  sitea; local
  siteb; r`2
  sitec; r`3
  sited; r`3






b`4      exercice `2      `12
routeur r`2

  destination; suivant
  sitea; r`1
  siteb; local
  sitec; r`3
  sited; r`3

routeur r`3

  destination '''''' suivant
  sitea; r`1
  siteb; r`2
  sitec; r`4
  sited; r`4

routeur r`4

  destination; suivant
  sitea; r`3
  siteb; r`3
  sitec; r`5
  sited; local



c`4      exercice `2      `13
routeur r`5

  destination; suivant
  sitea; r`4
  siteb; r`4
  sitec; local
  sited; r`4

  indiquer le chemin suivi
par les paquets lorsqu'une
information est envoye de
siteb  sitec.

  `3. afin d'optimiser la
maintenance du rseau, les
tables de routage sont confi-
gures automatiquement en uti-
lisant le protocole rip.








`5       exercice `2      `14
  pour le protocole rip, le
chemin est construit de faon
 minimiser le nombre de rou-
teurs traverss.
  recopier et complter la
table de routage rip du rou-
teur r`1 (voir figure `3).

figure `3 -- table de routa-
ge rip du routeur r`1

      `;table transcrite en
      colonne.
      abrviations:
      suiv: suivant
      sauts: nombre de
      sauts'

routeur r`1 (rip)

destination  suiv ' sauts
sitea ''''' local  `0
siteb ''''' `-' ''' `-'
siteb ''''' `-' ''' `-'
sitec ''''' `-' ''' `-'
sited ''''' `-' ''' `-'
a`5      exercice `2      `15
  `4. la liaison liaison`2 a
un dbit trs infrieur aux
autres liaisons. expliquer
pourquoi le choix du protocole
rip n'est pas judicieux.

  `5. on considre maintenant
que les tables de routage sont
configures en utilisant le
protocole ospf.
  pour le protocole ospf,
le chemin est construit de
faon  minimiser le co5t. le
co5t d'un chemin est la somme
des co5ts des liaisons 
parcourir. pour une liaison,
la relation entre le co5t
(sans unit) et le dbit d
(en bit/s) est donne par:
  `co5t"10^10/d

  par convention, le co5t
d'une liaison directe entre un
routeur et un site est `0.
  on donne le co5t des liai-
sons dans la figure `4.
b`5      exercice `2      `16
figure `4 -- table des co5ts
des liaisons
      `;table transcrite en
      colonne'

liaison '' co5t
liaison`1  `100'000
liaison`2  `1'000'000
liaison`3  `5
liaison`4  `50'000
liaison`5  `5
liaison`6  `10

  a. indiquer la liaison dont
le dbit est le plus faible.

  b. donner la liste des
quatre chemins possibles pour
aller de sitea  sitec
sans utiliser deux fois le m2-
me routeur et calculer le co5t
de chacun de ces chemins.

  c. recopier et complter la
table de routage ospf du
routeur r`1 (voir figure `5).
c`5      exercice `2      `17
figure `5 -- table de routa-
ge ospf du routeur r`1

routeur r`1(opsf)

destination  suiv ' co5t
sitea ''' local  `0
siteb ''' `-' ''' `-'
sitec ''' `-' ''' `-'
sited ''' `-' ''' `-''
















`6       exercice `3      `18

        exercice `3
         (`6 points)

  :cet exercice traite de
programmation oriente objet
en python et d'algo-
rithmique.

  un pays est compos de dif-
frentes rgions. deux r-
gions sont voisines si elles
ont au moins une frontire en
commun. l'objectif est
d'attribuer une couleur 
chaque rgion sur la carte du
pays sans que deux rgions
voisines aient la m2me couleur
et en utilisant le moins de
couleurs possibles.
  la figure `1 ci-dessous
donne un exemple de rsultat
de coloration des rgions de
la france mtropolitaine.


a`6      exercice `3      `19
figure `1 -- carte colorie
des rgions de france mtro-
politaine
      `;voir planche tactile
      no`2'

  on rappelle quelques
fonctions et mthodes des
tableaux (le type list en
python) qui pourront 2tre
utilises dans cet exercice:
  9o len(tab): renvoie le
    nombre d'lments du
    tableau tab;
  9o tab.append(elt): ajoute
    l'lment elt en fin de
    tableau tab;
  9o tab.remove(elt): enlve
    la premire occurrence de
    elt de tab si elt est dans
    tab. provoque une erreur
    sinon.




b`6      exercice `3      `20
exemple:
  9o len((`1, `3, `12, `24,
    `3)b) renvoie `5;
  9o avec tab `" (`1, `3,
    `12, `24, `3)b,
    l'instruction
    tab.append(`7) modifie tab
    en (`1, `3, `12, `24, `3,
    `7)b;
  9o avec tab `" (`1, `3,
    `12, `24, `3)b,
    l'instruction
    tab.remove(`3) modifie tab
    en (`1, `12, `24, `3)b.

  les deux parties de cet
exercice forment un ensemble.
cependant, il n'est pas n-
cessaire d'avoir rpondu  une
question pour aborder la sui-
vante. en particulier, on
pourra utiliser les mthodes
des questions prcdentes m2me
quand elles n'ont pas t
codes.

`7       exercice `3      `21
  pour chaque question, toute
trace de rflexion sera prise
en compte.

          partie `1

  on considre la classe
region qui modlise une r-
gion sur une carte et dont le
dbut de l'implmentation est:

`1 class region:
  `2 '''modlise une rgion
      d'un pays sur une
      carte.'''
  `3 def --init--(self,
      nom-region):
      `4 '''
      `5 initialise une rgion
      `6: param nom-region
          (str) le nom de la
          rgion
      `7 '''
      `8 self.nom `"
          nom-region
      
a`7      exercice `3      `22
      `9 0 tableau des r-
          gions voisines, vide
          au dpart
      `10 self.tab-voisines
          `" ()b
      `11 0 tableau des cou-
          leurs disponibles
          pour colorier la r-
          gion
      `12 self.tab-couleurs-
          disponibles `"
          ('rouge', 'vert',
          'bleu', 'jaune', 'o-
          range', 'marron')b
      `13 0 couleur attribue
           la rgion et non
          encore choisie au
          dpart
      `14 self.couleur-attri-
          buee `" none

  `1. associer, en vous ap-
puyant sur l'extrait de code
prcdent, les noms nom,
tab-voisines,
tab-couleurs-disponibles et
b`7      exercice `3      `23
couleur-attribuee au terme
qui leur correspond parmi:
objet, attribut, mthode ou
classe.

  `2. indiquer le type du pa-
ramtre nom-region de la
mthode --init-- de la
classe region.

  `3. donner une instruction
permettant de crer une
instance nomme ge de la clas-
se region correspondant  la
rgion dont le nom est "grand
est".

  `4. recopier et complter
la ligne `6 de la mthode de
la classe region page sui-
vante:





c`7      exercice `3      `24

`1 def renvoie-premiere-cou-
    leur-disponible(self):
  `2 '''
  `3 renvoie la premire cou-
      leur du tableau des cou-
      leurs disponibles suppo-
      s non vide.
  `4: return (str)
  `5 '''
  `6 return `--'
  
----------------------------`8

  `5. recopier et complter
la ligne `6 de la mthode de
la classe region ci-dessous:

`1 def renvoie-nb-voisine-
    s(self):
  `2 '''
  `3 renvoie le nombre de r-
      gions voisines.
  `4: return (int)
  `5 '''
  `6 return `--'
a`8      exercice `3      `25
  `6. complter la mthode de
la classe region ci-dessous 
partir de la ligne `6:

`1 def est-coloriee(self):
  `2 '''
  `3 renvoie true si une
      couleur a t attribue
       cette rgion et false
      sinon.
  `4: return (bool)
  `5 '''
  `6 `--'
  
  `7. complter la mthode de
la classe region ci-dessous 
partir de la ligne `8:

`1 def retire-couleur(self,
    couleur):
  `2 '''
  `3 retire couleur du
      tableau de couleurs
      disponibles de la rgion
      si elle est dans ce
      tableau. ne fait rien
b`8      exercice `3      `26
      sinon.
  `4: param couleur (str)
  `5: ne renvoie rien
  `6: effet de bord sur le
      tableau des couleurs
      disponibles
  `7 '''
  `8 `--'

  `8. complter la mthode de
la classe region ci-dessous,
 partir de la ligne `7, :en
utilisant une boucle:

`1 def est-voisine(self, re-
    gion):
  `2 '''
  `3 renvoie true si la re-
      gion passe en paramtre
      est une voisine et
      false sinon.
  `4: param region (region)
  `5: return (bool)
  `6 '''
  `7 `--'
  
`9       exercice `3      `27
          partie `2

dans cette partie:
  -- on considre qu'on dispo-
    se d'un ensemble
    d'instances de la classe
    region pour lesquelles
    l'attribut tab-voisines a
    t renseign;
  -- on pourra utiliser les
      mthodes de la classe
      region voques dans
      les questions de la
      partie `1:
    9o renvoie-premiere-
        couleur-disponible
    9o renvoie-nb-voisines
    9o est-coloriee
    9o retire-couleur
    9o est-voisine

on a cr une classe pays:
  -- cette classe modlise la
    carte d'un pays compos de
    rgions;
  
a`9      exercice `3      `28
  -- l'unique attribut tab-
    regions de cette classe
    est un tableau (type list
    en python) dont les l-
    ments sont des instances
    de la classe region.

  `9. recopier et complter
la mthode de la classe pays
ci-dessous  partir de la
ligne `7:

`1 def renvoie-tab-regions-
    non-coloriees(self):
  `2 '''
  `3 renvoie un tableau dont
      les lments sont les
      rgions du pays sans
      couleur attribue.
  `4: return (list) tableau
      d'instances de la classe
  `5 region
  `6 '''
  `7 `--'


b`9      exercice `3      `29
  `10. on considre la mtho-
de de la classe pays ci-des-
sous.

`1 def renvoie-max(self):
  `2 nb-voisines-max `" --`1
  `3 region-max `" none
  `4 for reg in self.renvoie-
      tab-regions-non-color
      iees():
    `5 if reg.renvoie-nb-
        voisines() @ nb-voi-
        sines-max:
      `6 nb-voisines-max `"
          reg.renvoie-nb-voi
          sines()
      `7 region-max `" reg
    `8 return region-max
    
  a. expliquer dans quel cas
cette mthode renvoie none.

  b. indiquer, dans le cas o
cette mthode ne renvoie pas
none, les deux particularits
de la rgion renvoye.
`10      exercice `3      `30
  `11. coder la mthode
colorie(self) de la classe
pays qui choisit une couleur
pour chaque rgion du pays de
la faon suivante:

  9o on rcupre la rgion
    non colorie qui possde
    le plus de voisines.
  9o tant que cette rgion
      existe:
    l* la couleur attribue
       cette rgion est la
      premire couleur dispo-
      nible dans son tableau
      de couleurs disponibles.
    l* pour chaque rgion
        voisine de la rgion:
      l* si la couleur choi-
        sie est prsente dans
        le tableau des cou-
        leurs disponibles de
        la rgion voisine
        alors on la retire de
        ce tableau.
      
a`10     exercice `3      `31
  l* on rcupre  nouveau
    la rgion non colorie qui
    possde le plus de voisi-
    nes.






















